//1.引入express模块
const express = require('express')
//2.引入与数据库相关的模块
const pool = require('../pool.js')
//3.创建路由对象(固定语法)
const router = express.Router()
//4.往该路由器中添加多个子路由
//(1)用户登录（post /login）
//浏览器请求的地址：/v1/users/login
//只需要手机号登录
router.post('/login', (req, res, next) => {
  //接收请求参数
  let obj = req.body
  /* console.log(obj.phone) */
  //执行SQL命令
  pool.query('select * from paino_user where phone=? and upwd=?;', [obj.phone, obj.upwd], (err, data) => {
    if (err) {
      next(err);
      return
    }
    //检查数据库返回结果
    /* console.log(data) */
    //查询到了只有一个数组包裹一个对象[{}]
    //查不到返回[]
    if (data.length == 0) {
      res.send({
        "code": 0,
        "msg": "登录失败"
      })
    } else {
      res.send({
        "code": 1,
        "msg": "登录成功"
      })
    }
  })
})
//4.往该路由器中添加多个子路由
//(1)检测账号是否存在（post /ph）
//浏览器请求的地址：/v1/users/ph
//只需要手机号登录
router.post('/ph', (req, res, next) => {
  //接收请求参数
  let obj = req.body
  /* console.log(obj.phone) */
  //执行SQL命令
  pool.query('select * from paino_user where phone=?;', [obj.phone], (err, data) => {
    if (err) {
      next(err);
      return
    }
    //检查数据库返回结果
    console.log(data)
    //查询到了只有一个数组包裹一个对象[{}]
    //查不到返回[]
    if (data.length == 0) {
      res.send({
        "code": 1,
        "msg": "账号未被注册"
      })
    } else {
      res.send({
        "code": 0,
        "msg": "账号已被注册"
      })
    }
  })
})
//添加路由
//1.用户注册(post /reg)
//请求方法：post
router.post('/reg',(req,res,next)=>{
  //1.1获取post传递的参数
  var obj=req.body;
  console.log(obj);
  //1.2验证各项值是否为空
  if(!obj.phone){
    res.send({code:401,msg:'电话号码不能为空'});
	//阻止往后执行
	return;
  }
  if(!obj.upwd){
    res.send({code:402,msg:'密码不能为空'});
	return;
  }
  //验证手机号码格式是否正确
  //如果手机号码格式错误
  if(!/^1[3-9]\d{9}$/.test(obj.phone)){
    res.send({code:403,msg:'手机号码格式错误'});
	return;
  }
  //1.3执行SQL命令
  pool.query('insert into paino_user set?',[obj],(err,data)=>{
    if(err){
	  //如果执行SQL命令出现错误，交给下一个错误处理中间件
	  next(err);
	  //阻止往后执行
	  return;
	}
	console.log(data);
	res.send({code:200,msg:'注册成功'});
  });
});
//添加路由
//1.修改密码(post /modify)
//请求方法：post
router.post('/modify', (req, res, next) => {
  //接收请求参数
  let obj = req.body
  /* console.log(obj.phone) */
  //执行SQL命令
  //update  表名称  set  列名称=值, …  where  条件
  pool.query('update paino_user set upwd=? where phone=?;', [obj.upwd,obj.phone], (err, data) => {
    if (err) {
      next(err);
      return
    }
    if(!obj.phone){
      res.send({code:401,msg:'电话号码不能为空'});
    //阻止往后执行
    return;
    }
    if(!obj.upwd){
      res.send({code:402,msg:'密码不能为空'});
    return;
    }
    //验证手机号码格式是否正确
    //如果手机号码格式错误
    if(!/^1[3-9]\d{9}$/.test(obj.phone)){
      res.send({code:403,msg:'手机号码格式错误'});
    return;
    }
    //检查数据库返回结果
    console.log(data)
    //查询到了只有一个数组包裹一个对象[{}]
    //查不到返回[]
    if (data.affectedRows == 1) {
      res.send({
        "code": 1,
        "msg": "修改成功"
      })
    } else {
      res.send({
        "code": 0,
        "msg": "为查询到该手机号"
      })
    }
  })
})
//5.导出路由器router
module.exports = router;